home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 2.iso / dist / fw_libmng.idb / usr / freeware / include / libmng_conf.h.z / libmng_conf.h
C/C++ Source or Header  |  2001-10-09  |  10KB  |  210 lines

  1. /* ************************************************************************** */
  2. /* *                                                                        * */
  3. /* * project   : libmng                                                     * */
  4. /* * file      : libmng_conf.h             copyright (c) 2000 G.Juyn        * */
  5. /* * version   : 1.0.0                                                      * */
  6. /* *                                                                        * */
  7. /* * purpose   : main configuration file                                    * */
  8. /* *                                                                        * */
  9. /* * author    : G.Juyn                                                     * */
  10. /* * web       : http://www.3-t.com                                         * */
  11. /* * email     : mailto:info@3-t.com                                        * */
  12. /* *                                                                        * */
  13. /* * comment   : The configuration file. Change this to include/exclude     * */
  14. /* *             the options you want or do not want in libmng.             * */
  15. /* *                                                                        * */
  16. /* * changes   : 0.5.2 - 06/02/2000 - G.Juyn                                * */
  17. /* *             - separated configuration-options into this file           * */
  18. /* *             - changed to most likely configuration (?)                 * */
  19. /* *             0.5.2 - 06/03/2000 - G.Juyn                                * */
  20. /* *             - changed options to create a standard so-library          * */
  21. /* *               with everything enabled                                  * */
  22. /* *             0.5.2 - 06/04/2000 - G.Juyn                                * */
  23. /* *             - changed options to create a standard win32-dll           * */
  24. /* *               with everything enabled                                  * */
  25. /* *                                                                        * */
  26. /* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
  27. /* *             - changed file-prefixes                                    * */
  28. /* *                                                                        * */
  29. /* *             0.9.3 - 08/12/2000 - G.Juyn                                * */
  30. /* *             - added workaround for faulty PhotoShop iCCP chunk         * */
  31. /* *             0.9.3 - 09/16/2000 - G.Juyn                                * */
  32. /* *             - removed trace-options from default SO/DLL builds         * */
  33. /* *                                                                        * */
  34. /* ************************************************************************** */
  35.  
  36. #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
  37. #pragma option -A                      /* force ANSI-C */
  38. #endif
  39.  
  40. #ifndef _libmng_conf_h_
  41. #define _libmng_conf_h_
  42.  
  43. /* ************************************************************************** */
  44. /* *                                                                        * */
  45. /* *  User-selectable compile-time options                                  * */
  46. /* *                                                                        * */
  47. /* ************************************************************************** */
  48.  
  49. /* enable exactly one(1) of the MNG-(sub)set selectors */
  50. /* use this to select which (sub)set of the MNG specification you wish
  51.    to support */
  52. /* generally you'll want full support as the library provides it automatically
  53.    for you! if you're really strung on memory-requirements you can opt
  54.    to enable less support (but it's just NOT a good idea!) */
  55. /* NOTE that this isn't actually implemented yet */
  56.  
  57. #if !defined(MNG_SUPPORT_FULL) && !defined(MNG_SUPPORT_LC) && !defined(MNG_SUPPORT_VLC)
  58. #define MNG_SUPPORT_FULL
  59. /* #define MNG_SUPPORT_LC */
  60. /* #define MNG_SUPPORT_VLC */
  61. #endif
  62.  
  63. /* ************************************************************************** */
  64.  
  65. /* enable JPEG support if required */
  66. /* use this to enable the JNG support routines */
  67. /* this requires an external jpeg package;
  68.    currently only IJG's jpgsrc6b is supported! */
  69. /* NOTE that the IJG code can be either 8- or 12-bit (eg. not both);
  70.    so choose the one you've defined in jconfig.h; if you don't know what
  71.    the heck I'm talking about, just leave it at 8-bit support (thank you!) */
  72.  
  73. #ifdef MNG_SUPPORT_FULL                /* full support includes JNG */
  74. #define MNG_SUPPORT_IJG6B
  75. #endif
  76.  
  77. #ifndef MNG_SUPPORT_IJG6B
  78. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  79. #define MNG_SUPPORT_IJG6B
  80. #endif
  81. #endif
  82.  
  83. #if defined(MNG_SUPPORT_IJG6B) && !defined(MNG_SUPPORT_JPEG8) && !defined(MNG_SUPPORT_JPEG12)
  84. #define MNG_SUPPORT_JPEG8
  85. /* #define MNG_SUPPORT_JPEG12 */
  86. #endif
  87.  
  88. /* ************************************************************************** */
  89.  
  90. /* enable required high-level functions */
  91. /* use this to select the high-level functions you require */
  92. /* if you only need to display a MNG, disable write support! */
  93. /* if you only need to examine a MNG, disable write & display support! */
  94. /* if you only need to copy a MNG, disable display support! */
  95. /* if you only need to create a MNG, disable read & display support! */
  96. /* NOTE that turning all options off will be very unuseful! */
  97.  
  98. #if !defined(MNG_SUPPORT_READ) && !defined(MNG_SUPPORT_WRITE) && !defined(MNG_SUPPORT_DISPLAY)
  99. #define MNG_SUPPORT_READ
  100. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  101. #define MNG_SUPPORT_WRITE
  102. #endif
  103. #define MNG_SUPPORT_DISPLAY
  104. #endif
  105.  
  106. /* ************************************************************************** */
  107.  
  108. /* enable chunk access functions */
  109. /* use this to select whether you need access to the individual chunks */
  110. /* useful if you want to examine a read MNG (you'll also need MNG_STORE_CHUNKS !)*/
  111. /* required if you need to create & write a new MNG! */
  112.  
  113. #ifndef MNG_ACCESS_CHUNKS
  114. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  115. #define MNG_ACCESS_CHUNKS
  116. #endif
  117. #endif
  118.  
  119. /* ************************************************************************** */
  120.  
  121. /* enable exactly one of the color-management-functionality selectors */
  122. /* use this to select the level of automatic color support */
  123. /* MNG_FULL_CMS requires the lcms (little cms) external package ! */
  124. /* if you want your own app (or the OS) to handle color-management
  125.    select MNG_APP_CMS */
  126.  
  127. #if !defined(MNG_FULL_CMS) && !defined(MNG_GAMMA_ONLY) && !defined(MNG_NO_CMS) && !defined(MNG_APP_CMS)
  128. #if defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  129. #define MNG_FULL_CMS
  130. #else
  131. #define MNG_GAMMA_ONLY
  132. #endif
  133. /* #define MNG_NO_CMS */
  134. /* #define MNG_APP_CMS */
  135. #endif
  136.  
  137. /* ************************************************************************** */
  138.  
  139. /* enable automatic dithering */
  140. /* use this if you need dithering support to convert high-resolution
  141.    images to a low-resolution output-device */
  142. /* NOTE that this is not supported yet */
  143.  
  144. /* #define MNG_AUTO_DITHER */
  145.  
  146. /* ************************************************************************** */
  147.  
  148. /* enable whether chunks should be stored for reference later */
  149. /* use this if you need to examine the chunks of a MNG you have read,
  150.    or (re-)write a MNG you have read */
  151. /* turn this off if you want to reduce memory-consumption */
  152.  
  153. #ifndef MNG_STORE_CHUNKS
  154. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  155. #define MNG_STORE_CHUNKS
  156. #endif
  157. #endif
  158.  
  159. /* ************************************************************************** */
  160.  
  161. /* enable internal memory management (if your compiler supports it) */
  162. /* use this if your compiler supports the 'standard' memory functions
  163.    (calloc & free), and you want the library to use these functions and not
  164.    bother your app with memory-callbacks */
  165.  
  166. /* #define MNG_INTERNAL_MEMMNGMT */
  167.  
  168. /* ************************************************************************** */
  169.  
  170. /* enable internal tracing-functionality (manual debugging purposes) */
  171. /* use this if you have trouble location bugs or problems */
  172. /* NOTE that you'll need to specify the trace callback function! */
  173.  
  174. /* #define MNG_SUPPORT_TRACE */
  175.  
  176. /* ************************************************************************** */
  177.  
  178. /* enable extended error- and trace-telltaling */
  179. /* use this if you need explanatory messages with errors and/or tracing */
  180.  
  181. #if !defined(MNG_ERROR_TELLTALE) && !defined(MNG_TRACE_TELLTALE)
  182. #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
  183. #define MNG_ERROR_TELLTALE
  184. #define MNG_TRACE_TELLTALE
  185. #endif
  186. #endif
  187.  
  188. /* ************************************************************************** */
  189.  
  190. /* enable big-endian support  */
  191. /* enable this if you're on an architecture that supports big-endian reads
  192.    and writes that aren't word-aligned */
  193. /* according to reliable sources this only works for PowerPC (bigendian mode)
  194.    and 680x0 */
  195.  
  196. /* #define MNG_BIGENDIAN_SUPPORTED */
  197.  
  198. /* ************************************************************************** */
  199. /* *                                                                        * */
  200. /* *  End of user-selectable compile-time options                           * */
  201. /* *                                                                        * */
  202. /* ************************************************************************** */
  203.  
  204. #endif /* _libmng_conf_h_ */
  205.  
  206. /* ************************************************************************** */
  207. /* * end of file                                                            * */
  208. /* ************************************************************************** */
  209.  
  210.